Processors, such as microprocessors, digital signal processors, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs) micro controllers, and microcomputers, are well known. Such devices may include on-board RAM (Random Access Memory), ROM (Read Only Memory), EPROM, timers, I/O ports, and serial ports.
Processors often have a bootstrap mode, also known programming, emulation (debug), or test mode, which entails downloading a bootstrap program (or other data) from an external source, which program is executed by the processor to provide a desired function, which functions are numerous. Devices such as PLAs and other reconfigurable hardware devices also have a bootstrap mode that serves to provide internal hardware configurations from an external device that contains instructions or blueprints for configuration of the device.
Because the program being downloaded in bootstrap mode comes from a source external to the processor, there are potential security risks associated with downloading an external program. Today, security for microprocessors is designed to prevent further reading in and reading out of data using fuses or fusible links that are severed once the program is entered into the microprocessor. Such technology may be found in the PIC.TM. chip available from Microchip, Inc. Such a solution, however, does not prevent tampering with the external source of information nor does it prevent undesirable programs from entering the processor, and further prevents the device from being programmed at a later time by an authorized programmer, thereby limiting the flexibility of the device.
Accordingly, there is a need for a processor that has a more secure method of downloading a bootstrap program that allows for multiple bootstrap programming of a single device.